<?php
/**
 * JS_API支付demo
 * ====================================================
 * 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。
 * 成功调起支付需要三个步骤：
 * 步骤1：网页授权获取用户openid
 * 步骤2：使用统一支付接口，获取prepay_id
 * 步骤3：使用jsapi调起支付
*/
	include_once(BASE_ROOT_PATH."/shop/templates/default/home/WxPayPubHelper/WxPayPubHelper.php");
	
	//使用jsapi接口
	$jsApi = new JsApi_pub();

	//=========步骤1：网页授权获取用户openid============
	//通过code获得openid
// 	if (!isset($_GET['code']))
// 	{
// 		//触发微信返回code码
// 		$url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL);
// 		Header("Location: $url"); 
// 	}else
// 	{
// 		//获取code码，以获取openid
// 	    $code = $_GET['code'];
// 		$jsApi->setCode($code);
// 		$openid = $jsApi->getOpenId();
// 	}
	$openid = $output['user']['openid'];

	//=========步骤2：使用统一支付接口，获取prepay_id============
	//使用统一支付接口
	$unifiedOrder = new UnifiedOrder_pub();
	
	//设置统一支付接口参数
	//设置必填参数
	//appid已填,商户无需重复填写
	//mch_id已填,商户无需重复填写
	//noncestr已填,商户无需重复填写
	//spbill_create_ip已填,商户无需重复填写
	//sign已填,商户无需重复填写
	$unifiedOrder->setParameter("openid","$openid");//商品描述
	$unifiedOrder->setParameter("body",'保证金支付');//商品描述
	//自定义订单号，此处仅作举例

	$timeStamp = time();
	//$out_trade_no = WxPayConf_pub::APPID."$timeStamp";
	$out_trade_no = $output['renzheng']['company_order_sn'];

	$unifiedOrder->setParameter("out_trade_no",$out_trade_no);//商户订单号 
	$unifiedOrder->setParameter("total_fee",$output['cash']);//总金额
	//$unifiedOrder->setParameter("total_fee",'1');//总金额
	$unifiedOrder->setParameter("notify_url",BASE_SITE_URL.'/pay/company.php');//通知地址 
	$unifiedOrder->setParameter("trade_type","JSAPI");//交易类型
	//echo $out_trade_no.'<br>'.WxPayConf_pub::NOTIFY_URL.'<br>'.$openid;exit;
	//非必填参数，商户可根据实际情况选填
	//$unifiedOrder->setParameter("sub_mch_id","XXXX");//子商户号  
	//$unifiedOrder->setParameter("device_info","XXXX");//设备号 
	//$unifiedOrder->setParameter("attach","XXXX");//附加数据 
	//$unifiedOrder->setParameter("time_start","XXXX");//交易起始时间
	//$unifiedOrder->setParameter("time_expire","XXXX");//交易结束时间 
	//$unifiedOrder->setParameter("goods_tag","XXXX");//商品标记 
	//$unifiedOrder->setParameter("openid","XXXX");//用户标识
	//$unifiedOrder->setParameter("product_id","XXXX");//商品ID

	$prepay_id = $unifiedOrder->getPrepayId();

	//=========步骤3：使用jsapi调起支付============
	$jsApi->setPrepayId($prepay_id);

	$jsApiParameters = $jsApi->getParameters();
	
	//$arr = json_decode($jsApiParameters,true);
	//file_put_contents('a.txt', var_export($arr,true));
	
	//echo $jsApiParameters;
?>

<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    <title>微信安全支付</title>

	<script type="text/javascript">

		//调用微信JS api 支付
		function jsApiCall()
		{
			WeixinJSBridge.invoke(
				'getBrandWCPayRequest',
				<?php echo $jsApiParameters; ?>,
				function(res){
					//WeixinJSBridge.log(res.err_msg);
					//alert(res.err_code+res.err_desc+res.err_msg);
//  					alert(res.err_msg);
  					//return false;
					if(res.err_msg.get_brand_wcpay_request=='ok'){
						location.href="index.php?act=my&auction_id=<?php echo intval($_GET['auction_id']);?>";
						return false;
					}
// 					return false;

				}
			);
		}

		function callpay()
		{
			if (typeof WeixinJSBridge == "undefined"){
			    if( document.addEventListener ){
			        document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
			    }else if (document.attachEvent){
			        document.attachEvent('WeixinJSBridgeReady', jsApiCall); 
			        document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
			    }
			}else{
			    jsApiCall();
			}
		}

		setTimeout("callpay()",1000);
	</script>
</head>
<body>
</body>
</html>